package com.sedu.manage.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sedu.common.core.domain.entity.SysDept;
import com.sedu.common.core.domain.entity.SysUser;
import com.sedu.system.domain.SysPost;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sedu.common.annotation.Excel;
import com.sedu.common.core.domain.BaseEntity;

/**
 * 考勤记录对象 attendance
 *
 * @author yulinfeng
 * @date 2025-03-29
 */
public class Attendance extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 考勤记录ID
     */
    private Long attendanceId;

    /**
     * 课程ID
     */
    @Excel(name = "课程ID")
    private Long courseId;

    /**
     * 课程对象
     */
    private Course course;

    /**
     * 科目ID
     */
    private Long subjectId;

    /**
     * 科目名称
     */
    private String subjectName;

    /**
     * 学生序号
     */
    @Excel(name = "学生ID")
    private Long studentId;

    /**
     * 学生学号
     */
    private String StudentName;

    /**
     * 学生昵称
     */
    private String StudentNick;

    /**
     * 考勤日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "考勤日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date attendanceDate;

    /**
     * 考勤状态
     */
    @Excel(name = "考勤状态")
    private Long status;

    /**
     * 年级
     */
    @Excel(name = "年级")
    private Long deptId;

    /**
     * 年级对象
     */
    private SysDept dept;

    /**
     * 班级
     */
    @Excel(name = "班级")
    private Long postId;

    /**
     * 班级对象
     */
    private SysPost post;

    public void setAttendanceId(Long attendanceId) {
        this.attendanceId = attendanceId;
    }

    public Long getAttendanceId() {
        return attendanceId;
    }

    public void setCourseId(Long courseId) {
        this.courseId = courseId;
    }

    public Long getCourseId() {
        return courseId;
    }

    public Course getCourse() {
        return course;
    }

    public void setCourse(Course course) {
        this.course = course;
    }

    public Long getSubjectId() {
        return subjectId;
    }

    public void setSubjectId(Long subjectId) {
        this.subjectId = subjectId;
    }

    public String getSubjectName() {
        return subjectName;
    }

    public void setSubjectName(String subjectName) {
        this.subjectName = subjectName;
    }

    public void setStudentId(Long studentId) {
        this.studentId = studentId;
    }

    public Long getStudentId() {
        return studentId;
    }

    public String getStudentName() {
        return StudentName;
    }

    public void setStudentName(String studentName) {
        StudentName = studentName;
    }

    public String getStudentNick() {
        return StudentNick;
    }

    public void setStudentNick(String studentNick) {
        StudentNick = studentNick;
    }

    public void setAttendanceDate(Date attendanceDate) {
        this.attendanceDate = attendanceDate;
    }

    public Date getAttendanceDate() {
        return attendanceDate;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public SysDept getDept() {
        return dept;
    }

    public void setDept(SysDept dept) {
        this.dept = dept;
    }

    public void setPostId(Long postId) {
        this.postId = postId;
    }

    public Long getPostId() {
        return postId;
    }

    public SysPost getPost() {
        return post;
    }

    public void setPost(SysPost post) {
        this.post = post;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("attendanceId", getAttendanceId())
                .append("courseId", getCourseId())
                .append("studentId", getStudentId())
                .append("attendanceDate", getAttendanceDate())
                .append("status", getStatus())
                .append("deptId", getDeptId())
                .append("postId", getPostId())
                .append("remark", getRemark())
                .append("createTime", getCreateTime())
                .toString();
    }
}
